.model  tiny
.386
.code
org     100h

code_begin      label   near
        mov     ah, 9
        mov     dx, offset message
        int     21h
        mov     ah, 4ah
        mov     bx, ((offset code_end - offset code_begin) + 20fh) shr 4
        mov     sp, ((offset code_end - offset code_begin) + 1ffh) and -2
        int     21h
        mov     ax, 3521h
        int     21h
        push    es
        push    bx
        pop     dword ptr ds:[offset jfar_21h + 1]
        mov     ah, 25h
        mov     dx, offset new_21h
        int     21h
        push    ds
        pop     es
        mov     bx, offset exec_block
        mov     word ptr ds:[bx + 4], cs
        mov     word ptr ds:[bx + 8], cs
        mov     word ptr ds:[bx + 0ch], cs
        mov     ax, 4b00h
        mov     dx, offset fatman_exe
        int     21h
        lds     dx, dword ptr cs:[offset jfar_21h + 1]
        mov     ax, 2521h
        int     21h
        mov     ah, 4ch
        int     21h

new_21h         proc    near
        cmp     byte ptr cs:[offset hook_read], 0
        je      check_seek
        pushf
        push    cs
        call    jfar_21h
        cmp     ax, 8000h
        jnb     new21_ret
        dec     byte ptr cs:[offset hook_read]
        push    ds
        push    2000h
        pop     ds

hook_index      label   near
        push    "PF"
        ret

check_seek      label   near
        cmp     ax, 4202h
        jne     jfar_21h
        push    es
        pusha
        push    cs
        pop     es
        push    cx
        push    dx
        pop     eax
        push    (offset offsets_e - offset offsets) shr 2
        pop     cx
        mov     di, offset offsets
        repne   scas dword ptr [di]
        sete    byte ptr cs:[offset hook_read]
        add     cx, cx
        mov     bx, cx
        mov     ax, word ptr cs:[bx + offset hook_tbl]
        mov     word ptr cs:[offset hook_index + 1], ax
        popa
        pop     es

jfar_21h        label   near
        db      0eah, 'P', 'F', 'P', 'F'
new_21h         endp

;hook_00         label   near

hook_01         label   near
        mov     word ptr ds:[2d66h], 0c00h
        mov     byte ptr ds:[396ah], 60h
        pop     ds

new21_ret       label   near
        iret

hook_02         label   near
        push    es
        pusha
        push    (offset tbl02_e - offset tbl_02) / 3
        pop     cx
        mov     si, offset tbl_02
        mov     di, 3e27h - 2
        call    patch_int09
        mov     ax, 3000h
        mov     es, ax
        mov     cl, 0ah
        mov     di, 1354h

patch_keys      label   near
        movs    byte ptr [di], byte ptr cs:[si]
        inc     di
        scasw
        loop    patch_keys
        popa
        pop     es
        pop     ds
        iret

tbl_02          label   near
                dw      2d62h
                db      0dch
                dw      2e14h
                db      1
                dw      2e1ch
                db      48h
                dw      2e24h
                db      50h
                dw      2e2ch
                db      1ch
                dw      2fc4h
                db      48h
                dw      2fc8h
                db      50h
                dw      2fd0h
                db      1ch
                dw      30b7h
                db      48h
                dw      30bbh
                db      50h
                dw      30bfh
                db      1ch
                dw      317fh
                db      48h
                dw      3183h
                db      50h
                dw      3187h
                db      1ch
                dw      3238h
                db      1ch
                dw      3417h
                db      48h
                dw      341dh
                db      50h
                dw      3423h
                db      1ch
                dw      3429h
                db      0bh
                dw      342fh
                db      2
                dw      3435h
                db      3
                dw      343bh
                db      4
                dw      3441h
                db      5
                dw      3447h
                db      6
                dw      344dh
                db      7
                dw      3453h
                db      8
                dw      3459h
                db      9
                dw      345fh
                db      0ah
                dw      3d42h
                db      60h
                dw      3e16h
                db      16h
                dw      3e3bh
                db      99h
                dw      3e41h
                db      79h
tbl02_e         label   near
                db      0bh, 2, 3, 4, 5, 6, 7, 8, 9, 0ah

hook_03         label   near
        push    es
        pusha
        push    (offset tbl03_e - offset tbl_03) / 3
        pop     cx
        mov     si, offset tbl_03
        mov     di, 8973h - 2
        call    patch_int09
        mov     word ptr ds:[2e3dh], 5a4dh
        popa
        pop     es
        pop     ds
        iret

tbl_03          label   near
                dw      34b7h
                db      2dh
                dw      3b9bh
                db      3fh
                dw      3ba5h
                db      41h
                dw      3bafh
                db      3ch
                dw      3bb9h
                db      44h
                dw      3bc3h
                db      10h
                dw      3bd6h
                db      2dh
                dw      3be0h
                db      0f5h
                dw      3beah
                db      0dh
                dw      888eh
                db      60h
                dw      8962h
                db      16h
                dw      8987h
                db      99h
                dw      898dh
                db      79h
tbl03_e         label   near

hook_04         label   near
        push    es
        pusha
        push    (offset tbl04_e - offset tbl_04) / 3
        pop     cx
        mov     si, offset tbl_04
        mov     di, 8ae3h - 2
        call    patch_int09
        mov     word ptr ds:[2e4bh], 5bafh
        popa
        pop     es
        pop     ds
        iret

tbl_04          label   near
                dw      34d3h
                db      9dh
                dw      3ba9h
                db      0afh
                dw      3bb3h
                db      0b1h
                dw      3bbdh
                db      0ach
                dw      3bc7h
                db      0b4h
                dw      3bd1h
                db      80h
                dw      3be4h
                db      9dh
                dw      3beeh
                db      65h
                dw      3bf8h
                db      7dh
                dw      89feh
                db      60h
                dw      8ad2h
                db      16h
                dw      8af7h
                db      99h
                dw      8afdh
                db      79h
tbl04_e         label   near

hook_05         label   near
        push    es
        pusha
        push    (offset tbl05_e - offset tbl_05) / 3
        pop     cx
        mov     si, offset tbl_05
        mov     di, 898bh - 2
        call    patch_int09
        mov     word ptr ds:[2e6ch], 5a36h
        popa
        pop     es
        pop     ds
        iret

tbl_05          label   near
                dw      34e6h
                db      45h
                dw      3bcch
                db      57h
                dw      3bd6h
                db      59h
                dw      3be0h
                db      54h
                dw      3beah
                db      5ch
                dw      3bf4h
                db      28h
                dw      3c07h
                db      45h
                dw      3c11h
                db      0dh
                dw      3c1bh
                db      25h
                dw      88a6h
                db      60h
                dw      897ah
                db      16h
                dw      899fh
                db      99h
                dw      89a5h
                db      79h
tbl05_e         label   near

hook_06         label   near
        push    es
        pusha
        push    (offset tbl06_e - offset tbl_06) / 3
        pop     cx
        mov     si, offset tbl_06
        mov     di, 8b77h - 2
        call    patch_int09
        mov     word ptr ds:[2e6ch], 5c22h
        mov     word ptr ds:[3c25h], 5bf9h
        popa
        pop     es
        pop     ds
        iret

tbl_06          label   near
                dw      34fah
                db      31h
                dw      3be0h
                db      43h
                dw      3beah
                db      45h
                dw      3bf4h
                db      40h
                dw      3bfeh
                db      48h
                dw      3c08h
                db      14h
                dw      3c1bh
                db      31h
                dw      3c2fh
                db      11h
                dw      8a92h
                db      60h
                dw      8b66h
                db      16h
                dw      8b8bh
                db      99h
                dw      8b91h
                db      79h
tbl06_e         label   near

hook_07         label   near
        push    es
        pusha
        push    (offset tbl07_e - offset tbl_07) / 3
        pop     cx
        mov     si, offset tbl_07
        mov     di, 8c23h - 2
        call    patch_int09
        mov     word ptr ds:[3be4h], 5cefh
        mov     word ptr ds:[3beeh], 5cf1h
        mov     word ptr ds:[3bf8h], 5cech
        mov     word ptr ds:[3c02h], 5cf4h
        popa
        pop     es
        pop     ds
        iret

tbl_07          label   near
                dw      34ffh
                db      0ddh
                dw      2e6ch
                db      0ceh
                dw      3c0ch
                db      0c0h
                dw      3c1fh
                db      0ddh
                dw      3c29h
                db      0a5h
                dw      3c33h
                db      0bdh
                dw      8b3eh
                db      60h
                dw      8c12h
                db      16h
                dw      8c37h
                db      99h
                dw      8c3dh
                db      79h
tbl07_e         label   near

hook_08         label   near
        push    es
        pusha
        push    (offset tbl08_e - offset tbl_08) / 3
        pop     cx
        mov     si, offset tbl_08
        mov     di, 8a4bh - 2
        call    patch_int09
        mov     word ptr ds:[350dh], 5b05h
        mov     word ptr ds:[3c1ch], 5ae8h
        mov     word ptr ds:[3c2fh], 5b05h
        mov     word ptr ds:[3c43h], 5ae5h
        popa
        pop     es
        pop     ds
        iret

tbl_08          label   near
                dw      2e6ch
                db      0f6h
                dw      3bf4h
                db      17h
                dw      3bfeh
                db      19h
                dw      3c08h
                db      14h
                dw      3c12h
                db      1ch
                dw      3c39h
                db      0cdh
                dw      8966h
                db      60h
                dw      8a3ah
                db      16h
                dw      8a5fh
                db      99h
                dw      8a65h
                db      79h
tbl08_e         label   near

hook_09         label   near
        push    es
        pusha
        push    (offset tbl09_e - offset tbl_09) / 3
        pop     cx
        mov     si, offset tbl_09
        mov     di, 8e03h - 2
        call    patch_int09
        popa
        pop     es
        pop     ds
        iret

tbl_09          label   near
                dw      2e6ch
                db      0aeh
                dw      350dh
                db      0bdh
                dw      3bf4h
                db      0cfh
                dw      3bfeh
                db      0d1h
                dw      3c08h
                db      0cch
                dw      3c12h
                db      0d4h
                dw      3c1ch
                db      0a0h
                dw      3c2fh
                db      0bdh
                dw      3c39h
                db      85h
                dw      3c43h
                db      9dh
                dw      8d1eh
                db      60h
                dw      8df2h
                db      16h
                dw      8e17h
                db      99h
                dw      8e1dh
                db      79h
tbl09_e         label   near

hook_10         label   near
        push    es
        pusha
        push    (offset tbl10_e - offset tbl_10) / 3
        pop     cx
        mov     si, offset tbl_10
        mov     di, 89ffh - 2
        call    patch_int09
        popa
        pop     es
        pop     ds
        iret

tbl_10          label   near
                dw      2e6ch
                db      0aah
                dw      34fah
                db      0b9h
                dw      3be0h
                db      0cbh
                dw      3beah
                db      0cdh
                dw      3bf4h
                db      0c8h
                dw      3bfeh
                db      0d0h
                dw      3c08h
                db      9ch
                dw      3c1bh
                db      0b9h
                dw      3c25h
                db      81h
                dw      3c2fh
                db      99h
                dw      891ah
                db      60h
                dw      89eeh
                db      16h
                dw      8a13h
                db      99h
                dw      8a19h
                db      79h
tbl10_e         label   near

hook_11         label   near
        push    es
        pusha
        push    (offset tbl11_e - offset tbl_11) / 3
        pop     cx
        mov     si, offset tbl_11
        mov     di, 895bh - 2
        call    patch_int09
        mov     word ptr ds:[2e6ch], 5a06h
        mov     word ptr ds:[3be8h], 59f8h
        mov     word ptr ds:[3c0fh], 59f5h
        popa
        pop     es
        pop     ds
        iret

tbl_11          label   near
                dw      34dah
                db      15h
                dw      3bc0h
                db      27h
                dw      3bcah
                db      29h
                dw      3bd4h
                db      24h
                dw      3bdeh
                db      2ch
                dw      3bfbh
                db      15h
                dw      3c05h
                db      0ddh
                dw      8876h
                db      60h
                dw      894ah
                db      16h
                dw      896fh
                db      99h
                dw      8975h
                db      79h
tbl11_e         label   near

hook_12         label   near
        push    es
        pusha
        push    (offset tbl12_e - offset tbl_12) / 3
        pop     cx
        mov     si, offset tbl_12
        mov     di, 8db3h - 2
        call    patch_int09
        popa
        pop     es
        pop     ds
        iret

tbl_12          label   near
                dw      2e6ch
                db      5eh
                dw      34fah
                db      6dh
                dw      3be0h
                db      7fh
                dw      3beah
                db      81h
                dw      3bf4h
                db      7ch
                dw      3bfeh
                db      84h
                dw      3c08h
                db      50h
                dw      3c1bh
                db      6dh
                dw      3c25h
                db      35h
                dw      3c2fh
                db      4dh
                dw      8cceh
                db      60h
                dw      8da2h
                db      16h
                dw      8dc7h
                db      99h
                dw      8dcdh
                db      79h
tbl12_e         label   near

hook_13         label   near
        push    es
        pusha
        push    (offset tbl13_e - offset tbl_13) / 3
        pop     cx
        mov     si, offset tbl_13
        mov     di, 9173h - 2
        call    patch_int09
        mov     word ptr ds:[2e6ch], 621eh
        popa
        pop     es
        pop     ds
        iret

tbl_13          label   near
                dw      34f5h
                db      2dh
                dw      3bd8h
                db      3fh
                dw      3be2h
                db      41h
                dw      3bech
                db      3ch
                dw      3bf6h
                db      44h
                dw      3c00h
                db      10h
                dw      3c13h
                db      2dh
                dw      3c1dh
                db      0f5h
                dw      3c27h
                db      0dh
                dw      908eh
                db      60h
                dw      9162h
                db      16h
                dw      9187h
                db      99h
                dw      918dh
                db      79h
tbl13_e         label   near

hook_14         label   near
        push    es
        pusha
        push    (offset tbl14_e - offset tbl_14) / 3
        pop     cx
        mov     si, offset tbl_14
        mov     di, 8bcbh - 2
        call    patch_int09
        popa
        pop     es
        pop     ds
        iret

tbl_14          label   near
                dw      2e6ch
                db      76h
                dw      34ffh
                db      85h
                dw      3be4h
                db      97h
                dw      3beeh
                db      99h
                dw      3bf8h
                db      94h
                dw      3c02h
                db      9ch
                dw      3c0ch
                db      68h
                dw      3c1fh
                db      85h
                dw      3c29h
                db      4dh
                dw      3c33h
                db      65h
                dw      8ae6h
                db      60h
                dw      8bbah
                db      16h
                dw      8bdfh
                db      99h
                dw      8be5h
                db      79h
tbl14_e         label   near

hook_15         label   near
        push    es
        pusha
        push    (offset tbl15_e - offset tbl_15) / 3
        pop     cx
        mov     si, offset tbl_15
        mov     di, 83a7h - 2
        call    patch_int09
        mov     word ptr ds:[2e6ch], 5452h
        popa
        pop     es
        pop     ds
        iret

tbl_15          label   near
                dw      34ebh
                db      61h
                dw      3bd0h
                db      73h
                dw      3bdah
                db      75h
                dw      3be4h
                db      70h
                dw      3beeh
                db      78h
                dw      3bf8h
                db      44h
                dw      3c0bh
                db      61h
                dw      3c15h
                db      29h
                dw      3c1fh
                db      41h
                dw      82c2h
                db      60h
                dw      8396h
                db      16h
                dw      83bbh
                db      99h
                dw      83c1h
                db      79h
tbl15_e         label   near

hook_16         label   near
        mov     byte ptr ds:[2d67h], 7fh
        mov     byte ptr ds:[32eah], 60h
        pop     ds
        iret

;hook_17         label   near

hook_18         label   near
        mov     word ptr ds:[2d62h], 63ch
        mov     byte ptr ds:[33a2h], 60h
        pop     ds
        iret

hook_19         label   near
        push    es
        pusha
        push    (offset tbl19_e - offset tbl_19) / 3
        pop     cx
        mov     si, offset tbl_19
        mov     di, 354bh - 2
        call    patch_int09
        mov     word ptr ds:[2d62h], 700h
        mov     ax, 3000h
        mov     es, ax
        mov     cl, 1ah
        mov     di, 0b0dbh
        rep     movs byte ptr [di], byte ptr cs:[si]
        mov     byte ptr es:[di + 0ah], 34h
        mov     byte ptr es:[di + 0dh], 39h
        popa
        pop     es
        pop     ds
        iret

tbl_19          label   near
                dw      2eb6h
                db      1ch
                dw      2ebah
                db      0eh
                dw      3466h
                db      60h
                dw      353ah
                db      16h
                dw      355fh
                db      99h
                dw      3565h
                db      79h
tbl19_e         label   near
                db      1eh, 30h, 2eh, 20h, 12h, 21h, 22h, 23h, 17h, 24h, 25h, 26h, 32h
                db      31h, 18h, 19h, 10h, 13h, 1fh, 14h, 16h, 2fh, 11h, 2dh, 15h, 2ch

hook_20         label   near
        push    es
        pusha
        push    (offset tbl20_e - offset tbl_20) / 3
        pop     cx
        mov     si, offset tbl_20
        mov     di, 8287h - 2
        call    patch_int09
        mov     word ptr ds:[2d6fh], 542fh
        popa
        pop     es
        pop     ds
        iret

tbl_20          label   near
                dw      839dh
                db      53h
                dw      83a7h
                db      55h
                dw      83b1h
                db      50h
                dw      83bbh
                db      58h
                dw      83c5h
                db      24h
                dw      83cfh
                db      41h
                dw      83d9h
                db      9
                dw      83e3h
                db      21h
                dw      81a2h
                db      60h
                dw      8276h
                db      16h
                dw      829bh
                db      99h
                dw      82a1h
                db      79h
tbl20_e         label   near

hook_21         label   near
        push    es
        pusha
        push    (offset tbl21_e - offset tbl_21) / 3
        pop     cx
        mov     si, offset tbl_21
        mov     di, 824bh - 2
        call    patch_int09
        mov     word ptr ds:[8389h], 52e8h
        mov     word ptr ds:[8393h], 5305h
        mov     word ptr ds:[83a7h], 52e5h
        popa
        pop     es
        pop     ds
        iret

tbl_21          label   near
                dw      2d6fh
                db      0f3h
                dw      8361h
                db      17h
                dw      836bh
                db      19h
                dw      8375h
                db      14h
                dw      837fh
                db      1ch
                dw      839dh
                db      0cdh
                dw      8166h
                db      60h
                dw      823ah
                db      16h
                dw      825fh
                db      99h
                dw      8265h
                db      79h
tbl21_e         label   near

hook_22         label   near
        push    es
        pusha
        push    (offset tbl22_e - offset tbl_22) / 3
        pop     cx
        mov     si, offset tbl_22
        mov     di, 837bh - 2
        call    patch_int09
        mov     word ptr ds:[2d6fh], 5523h
        mov     word ptr ds:[84cdh], 53fdh
        popa
        pop     es
        pop     ds
        iret

tbl_22          label   near
                dw      8491h
                db      47h
                dw      849bh
                db      49h
                dw      84a5h
                db      44h
                dw      84afh
                db      4ch
                dw      84b9h
                db      18h
                dw      84c3h
                db      35h
                dw      84d7h
                db      15h
                dw      8296h
                db      60h
                dw      836ah
                db      16h
                dw      838fh
                db      99h
                dw      8395h
                db      79h
tbl22_e         label   near

hook_23         label   near
        push    es
        pusha
        push    (offset tbl23_e - offset tbl_23) / 3
        pop     cx
        mov     si, offset tbl_23
        mov     di, 8393h - 2
        call    patch_int09
        mov     word ptr ds:[2d6fh], 553bh
        popa
        pop     es
        pop     ds
        iret

tbl_23          label   near
                dw      84a9h
                db      5fh
                dw      84b3h
                db      61h
                dw      84bdh
                db      5ch
                dw      84c7h
                db      64h
                dw      84d1h
                db      30h
                dw      84dbh
                db      4dh
                dw      84e5h
                db      15h
                dw      84efh
                db      2dh
                dw      82aeh
                db      60h
                dw      8382h
                db      16h
                dw      83a7h
                db      99h
                dw      83adh
                db      79h
tbl23_e         label   near

hook_24         label   near
        push    es
        pusha
        push    (offset tbl24_e - offset tbl_24) / 3
        pop     cx
        mov     si, offset tbl_24
        mov     di, 823bh - 2
        call    patch_int09
        mov     word ptr ds:[8379h], 52d8h
        mov     word ptr ds:[8397h], 52d5h
        popa
        pop     es
        pop     ds
        iret

tbl_24          label   near
                dw      2d6fh
                db      0e3h
                dw      8351h
                db      7
                dw      835bh
                db      9
                dw      8365h
                db      4
                dw      836fh
                db      0ch
                dw      8383h
                db      0f5h
                dw      838dh
                db      0bdh
                dw      8156h
                db      60h
                dw      822ah
                db      16h
                dw      824fh
                db      99h
                dw      8255h
                db      79h
tbl24_e         label   near

hook_25         label   near
        push    es
        pusha
        push    (offset tbl25_e - offset tbl_25) / 3
        pop     cx
        mov     si, offset tbl_25
        mov     di, 825bh - 2
        call    patch_int09
        mov     word ptr ds:[2d6fh], 5403h
        mov     word ptr ds:[8399h], 52f8h
        mov     word ptr ds:[83b7h], 52f5h
        popa
        pop     es
        pop     ds
        iret

tbl_25          label   near
                dw      8371h
                db      27h
                dw      837bh
                db      29h
                dw      8385h
                db      24h
                dw      838fh
                db      2ch
                dw      83a3h
                db      15h
                dw      83adh
                db      0ddh
                dw      8176h
                db      60h
                dw      824ah
                db      16h
                dw      826fh
                db      99h
                dw      8275h
                db      79h
tbl25_e         label   near

hook_26         label   near
        push    es
        pusha
        push    (offset tbl26_e - offset tbl_26) / 3
        pop     cx
        mov     si, offset tbl_26
        mov     di, 817bh - 2
        call    patch_int09
        mov     word ptr ds:[2d6fh], 5323h
        mov     word ptr ds:[82cdh], 51fdh
        popa
        pop     es
        pop     ds
        iret

tbl_26          label   near
                dw      8291h
                db      47h
                dw      829bh
                db      49h
                dw      82a5h
                db      44h
                dw      82afh
                db      4ch
                dw      82b9h
                db      18h
                dw      82c3h
                db      35h
                dw      82d7h
                db      15h
                dw      8096h
                db      60h
                dw      816ah
                db      16h
                dw      818fh
                db      99h
                dw      8195h
                db      79h
tbl26_e         label   near

patch_int09     proc    near
        push    ds
        pop     es
        mov     dword ptr ds:[di - 6], 0f359406ah
        mov     word ptr ds:[di - 2], 0a2abh
        mov     ax, word ptr ds:[di + 2]
        stosw
        push    cx
        push    si
        mov     cl, offset int09_e - offset int09_patch
        mov     si, offset int09_patch
        rep     movs byte ptr [di], byte ptr cs:[si]
        pop     si
        pop     cx

patch_tbl       label   near
        lods    word ptr cs:[si]
        xchg    di, ax
        movs    byte ptr [di], byte ptr cs:[si]
        loop    patch_tbl
        ret
patch_int09     endp

fatman_exe      db      "fatman.exe", 0
exec_block      dw      0, 80h, 0, 5ch, 0, 6ch, 0
offsets         label   near
                ;dd      0FFDC4ADDh
                dd      0FFDC041Dh, 0FFDAF072h, 0FFD7F8D2h, 0FFD30168h, 0FFD005B8h, 0FFCD85E8h, 0FFCB01F8h, 0FFC850E8h, 0FFC57F88h
                dd      0FFC2AEEEh, 0FFC0216Eh, 0FFBD4D5Eh, 0FFBAC31Eh, 0FFB824EEh, 0FFB5EA0Eh, 0FFD5A1D8h
                ;dd      0FFB1426Ah
                dd      0FFAF9210h, 0FFADE0FEh, 0FFAD157Eh, 0FFAC36BEh, 0FFAB557Eh, 0FFAA879Eh, 0FFA993EEh, 0FFA87A2Eh, 0FFA7BD8Eh

offsets_e       label   near
hook_tbl        dw      offset hook_26, offset hook_25, offset hook_24, offset hook_23, offset hook_22, offset hook_21, offset hook_20, offset hook_19
                dw      offset hook_18
                ;dw      offset hook_17
                dw      offset hook_16, offset hook_15, offset hook_14, offset hook_13, offset hook_12, offset hook_11, offset hook_10, offset hook_09
                dw      offset hook_08, offset hook_07, offset hook_06, offset hook_05, offset hook_04, offset hook_03, offset hook_02, offset hook_01
                ;dw      offset hook_00

int09_patch     label   near
                db      0, 0, 7, 0ebh, 25h, 90h, 3ch, 0e0h, 74h, 20h, 9ch, 24h, 7fh, 9dh
int09_e         label   near

hook_read       db      0

message         db "DOSBox fix for Fatman: The Caped Consumer", 0dh, 0ah
                db "by Peter Ferrie (peter_ferrie@hotmail.com)", 0dh, 0ah, "$"

code_end        label   near
end             code_begin
